Coming to grips with C++11 and C++14 is more than a matter of familiarizing yourself with the features they introduce (e。g。, auto type declarations, move semantics, lambda expressions, and concurrency support)。 The challenge is learning to use those features effectively--so that your software is correct, efficient, maintainable, and portable。 That's where this practical book comes in。 It describes how to write truly great software using C++11 and C++14--i。e。 using modern C++。
Topics include:
The pros and cons of braced initialization, noexcept specifications, perfect forwarding, and smart pointer make functions
The relationships among std:: move, std:: forward, rvalue references, and universal references
Techniques for writing clear, correct, effective lambda expressions
How std:: atomic differs from volatile, how each should be used, and how they relate to C++'s concurrency API
How best practices in "old" C++ programming (i。e。, C++98) require revision for software development in modern C++
Effective Modern C++ follows the proven guideline-based, example-driven format of Scott Meyers' earlier books, but covers entirely new material。
"After I learned the C++ basics, I then learned how to use C++ in production code from Meyer's series of Effective C++ books。 Effective Modern C++ is the most important how-to book for advice on key guidelines, styles, and idioms to use modern C++ effectively and well。 Don't own it yet? Buy this one。 Now"。
-- Herb Sutter, Chair of ISO C++ Standards Committee and C++ Software Architect at Microsoft